package com.toy.wms.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 采购订单表
 * </p>
 *
 * @author zcy
 * @since 2025-10-31
 */
@TableName("purchase_order")
public class PurchaseOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联商品ID
     */
    private Long productId;

    /**
     * 采购平台(闲鱼/转转等)
     */
    private String platform;

    /**
     * 卖家信息
     */
    private String sellerInfo;

    /**
     * 采购价格
     */
    private BigDecimal purchasePrice;

    /**
     * 运费
     */
    private BigDecimal shippingCost;

    /**
     * 物流单号
     */
    private String trackingNumber;

    /**
     * 预计到货日期
     */
    private LocalDate expectedArrival;

    /**
     * 实际到货时间
     */
    private LocalDateTime actualArrival;

    /**
     * 状态(pending/received/canceled)
     */
    private String status;

    /**
     * 采购备注
     */
    private String notes;

    /**
     * 实物照片JSON数组
     */
    private String photos;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getSellerInfo() {
        return sellerInfo;
    }

    public void setSellerInfo(String sellerInfo) {
        this.sellerInfo = sellerInfo;
    }

    public BigDecimal getPurchasePrice() {
        return purchasePrice;
    }

    public void setPurchasePrice(BigDecimal purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getShippingCost() {
        return shippingCost;
    }

    public void setShippingCost(BigDecimal shippingCost) {
        this.shippingCost = shippingCost;
    }

    public String getTrackingNumber() {
        return trackingNumber;
    }

    public void setTrackingNumber(String trackingNumber) {
        this.trackingNumber = trackingNumber;
    }

    public LocalDate getExpectedArrival() {
        return expectedArrival;
    }

    public void setExpectedArrival(LocalDate expectedArrival) {
        this.expectedArrival = expectedArrival;
    }

    public LocalDateTime getActualArrival() {
        return actualArrival;
    }

    public void setActualArrival(LocalDateTime actualArrival) {
        this.actualArrival = actualArrival;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getNotes() {
        return notes;
    }

    public void setNotes(String notes) {
        this.notes = notes;
    }

    public String getPhotos() {
        return photos;
    }

    public void setPhotos(String photos) {
        this.photos = photos;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "PurchaseOrder{" +
        "id = " + id +
        ", productId = " + productId +
        ", platform = " + platform +
        ", sellerInfo = " + sellerInfo +
        ", purchasePrice = " + purchasePrice +
        ", shippingCost = " + shippingCost +
        ", trackingNumber = " + trackingNumber +
        ", expectedArrival = " + expectedArrival +
        ", actualArrival = " + actualArrival +
        ", status = " + status +
        ", notes = " + notes +
        ", photos = " + photos +
        ", createTime = " + createTime +
        ", updateTime = " + updateTime +
        "}";
    }
}
